// 获取全局Vue实例的辅助函数
function getGlobalModal() {
  // 尝试获取全局的$modal实例
  const app = getApp();
  if (app && app.$modal) {
    return app.$modal;
  }

  // 尝试通过uni对象获取
  if (uni.$modal) {
    return uni.$modal;
  }

  // 如果都找不到，返回null
  return null;
}

export default {
  // 关闭所有页面，打开到应用内的某个页面
  reLaunch(url) {
    const modal = getGlobalModal();
    if (modal && modal.showCustomToast) {
      modal.showCustomToast("正在加载页面...", "info");
    }
    return uni.reLaunch({
      url: url,
    });
  },
  // 跳转到tabBar页面，并关闭其他所有非tabBar页面
  switchTab(url) {
    const modal = getGlobalModal();
    if (modal && modal.showCustomToast) {
      modal.showCustomToast("正在切换页面...", "info");
    }
    return uni.switchTab({
      url: url,
    });
  },
  // 关闭当前页面，跳转到应用内的某个页面
  redirectTo(url) {
    const modal = getGlobalModal();
    if (modal && modal.showCustomToast) {
      modal.showCustomToast("正在跳转...", "info");
    }
    return uni.redirectTo({
      url: url,
    });
  },
  // 保留当前页面，跳转到应用内的某个页面
  navigateTo(url) {
    const modal = getGlobalModal();
    if (modal && modal.showCustomToast) {
      modal.showCustomToast("正在打开新页面...", "info");
    }
    return uni.navigateTo({
      url: url,
    });
  },
  // 关闭当前页面，返回上一页面或多级页面
  navigateBack() {
    const modal = getGlobalModal();
    if (modal && modal.showCustomToast) {
      modal.showCustomToast("正在返回...", "info");
    }
    return uni.navigateBack();
  },
};
